import XEUtils from "xe-utils";
/**
 * 格式化数字,截取小数点后num位
 * @param {*} value:需要格式化的数字
 * @param {*} num :保留小数点后几位
 * @returns
 */
export function formatNumber(value, num = 4) {
  if (!value) return "";
  if (XEUtils.isNumber(value) || !isNaN(XEUtils.isFloat(value))) {
    return XEUtils.toFixed(value, num);
  } else {
    const numericValue = toNumber.toNumber(value);
    if (!isNaN(numericValue)) {
      return XEUtils.toFixed(numericValue, num);
    }
  }
}

/**
 * 将base64转换为文件
 * @param {*} dataurl:base64
 * @param {*} filename:文件名
 * @returns
 */
export function base64ToFile(dataurl, filename) {
  let arr = dataurl.split(",");
  let mime = arr[0].match(/:(.*?);/)[1];
  let bstr = atob(arr[1]);
  let n = bstr.length;
  let u8arr = new Uint8Array(n);
  while (n--) {
    u8arr[n] = bstr.charCodeAt(n);
  }
  let file = new Blob([u8arr], { type: mime });
  if (filename) {
    file = new File([file], filename, { type: mime });
  }
  return file;
}

/**
 * 判断是否是二维数组
 * @param {*} arr
 * @returns
 */
export function flattenAndRemoveDuplicates(arr) {
  function isArray(arg) {
    return Object.prototype.toString.call(arg) === "[object Array]";
  }
  function flattenAndRemoveDuplicatesFromArray(arr) {
    const uniqueArray = [...new Set(arr)];
    return uniqueArray;
  }
  function processArray(arr) {
    if (!isArray(arr)) {
      console.error("Input is not an array");
      return [];
    }
    if (arr.every((item) => !isArray(item))) {
      return flattenAndRemoveDuplicatesFromArray(arr);
    }
    const flattenedArray = arr.flat();
    return flattenAndRemoveDuplicatesFromArray(flattenedArray);
  }
  return processArray(arr);
}

export function extractAndUniqueSecondElement(array) {
  // 使用 Set 数据结构进行去重
  let uniqueSet = new Set(array.map((item) => item[1]));

  // 将 Set 转换为数组
  let uniqueArray = Array.from(uniqueSet);

  return uniqueArray || [];
}

import { ElMessage } from "element-plus";
// export const copyText = async (text) => {
//   try {
//     await navigator.clipboard.writeText(text);
//     ElMessage.success("复制成功");
//   } catch (err) {
//     console.error("复制失败:", err);
//     ElMessage.error("复制失败");
//   }
// };

export function copyText(text) {
  if (navigator.clipboard && window.isSecureContext) {
    navigator.clipboard
      .writeText(text)
      .then(() => {
        ElMessage.success("复制成功");
      })
      .catch(() => {
        ElMessage.error("复制失败");
      });
  } else {
    const textArea = document.createElement("textarea");
    textArea.value = text;
    document.body.appendChild(textArea);
    textArea.focus();
    textArea.select();

    const successful = document.execCommand("copy");
    textArea.remove(); // 移除文本框在复制后

    if (successful) {
      ElMessage.success("复制成功");
    } else {
      ElMessage.error("复制失败");
    }
  }
}
